>>(bitwise right shift)
ÊÄÏí æÙíÝÉ
ãÞÇÑÈÉ ãä æÙíÝÉ <<(bitwise left shift) ,
æáßäåÇ ÊÎÊáÝ ÚäåÇ Ýí ÃäåÇ ÊÞæã ÈÅÒÇÍÉ ÇáÑÞã ÇáÃíÓÑ Åáí Çáíãíä ,æÇáãËÇá ÇáÊÇáí
íæÖÍ ÇáÅÒÇÍÉ Åáí Çáíãíä.
ãËÇá:
var x = Number(2)
trace(2 >> 1);
æåÐå åí
ÇáÎØæÇÊ ÇáÊí íÞæã ÈåÇ ÇáÈÑäÇãÌ áÊäÝíÐ Ðáß ÇáßæÏ:
1. ÅäÔÇÁ ãÊÛíÑ x ÚÏÏí ÞíãÊå ÇáÚÏÏ(2)
2. ÊÍæíá ÇáÚÏÏ (2) ãä ÇáäÙÇã
ÇáËäÇÆí Åáí ÇáäÙÇã ÇáÚÔÑí ßÇáÊÇáí:
|
ÚÔÑí |
ËäÇÆí |
|
2 |
0010 |
íÊÍæá
ÇáÚÏÏ (2) ÈÇáäÙÇã ÇáÚÔÑí Åáí ÇáÚÏÏ (0010) ÈÇáäÙÇã
ÇáËäÇÆí.
3. íÞæã ÇáÈÑäÇãÌ ÈÅÒÇÍÉ ÇáÚÏÏ
Åáí Çáíãíä ãÑÉ æÇÍÏÉ íÖíÝ ãÚåÇ ÕÝÑ Åáí ÇáíÓÇÑ æíÞæã ÈÍÐÝ ÇáÕÝÑ ÇáãæÌæÏ ÃÞÕí
íãíä ÇáÚÏÏ ,ÝíÊÍæá ÇáÚÏÏ Åáí 0001
æåæ ãÇ íÓÇæí ÇáÚÏÏ (1) ÈÇáäÙÇã ÇáÚÔÑí .
4. íÚÑÖ ÇáÈÑäÇãÌ ÇáÚÏÏ (1) Ýí
äÇÝÐÉ output
.
ãËÇá ÂÎÑ:
var x:Number = 4
trace(x >> 2);
ÇáÎØæÇÊ :
1. íÞæã ÇáÈÑäÇãÌ ÈÅäÔÇÁ ãÊÛíÑ ÚÏÏí x áå ÞíãÉ(4) .
2. íÍæá ÇáÈÑäÇãÌ ÇáÚÏÏ (4) ãä ÇáäÙÇã ÇáÚÔÑí Åáí ÇáäÙÇã ÇáËäÇÆí ßÇáÊÇáí:
|
ÚÔÑí |
ËäÇÆí |
|
4 |
0100 |
íÊÍæá
ÇáÚÏÏ (4) ÈÇáäÙÇã ÇáÚÔÑí Åáí ÇáÚÏÏ (0100) ÈÇáäÙÇã ÇáËäÇÆí.
3. íÞæã ÇáÈÑäÇãÌ ÈÅÒÇÍÉ ÇáÚÏÏ Åáí Çáíãíä ãÑÊÇä ,Ýí ßá ãÑÉ íÖÇÝ ÕÝÑ Åáí ÇáíÓÇÑ æíÍÐÝ ÕÝÑ ãä Çáíãíä
Ýíßæä ÇáÚÏÏ ÇáäåÇÆí åæ (0001) .
4. íÞæã ÇáÈÑäÇãÌ ÈÊÍæíá ÇáÚÏÏ (0001)
ãä ÇáäÙÇã ÇáËäÇÆí Åáí ÇáäÙÇã ÇáÚÔÑí ÝíÕÈÍ (1) æåæ ãÇ íÙåÑ Ýí äÇÝÐÉ output .
ãÞÇÑäÉ Èíä (<<bitwise left shift) æ >>(bitwise right shift)
íæÖÍ ÇáÌÏæá ÇáÊÇáí ÚãáíÉ ÅÒÇÍÉ ÇáÚÏÏ 7 ãÑÉ
Åáí Çáíãíä æ ãÑÉ Åáí ÇáíÓÇÑ ÈãÞÏÇÑ ËáÇË ãÑÇÊ .
|
ÇáÚÏÏ ÈÇáäÙÇã ÇáËäÇÆí |
ÇáÚÏÏ ÈÇáäÙÇã ÇáÚÔÑí |
<<(bitwise
left shift) |
ÇáäÇÊÌ |
>>(bitwise right shift) |
ÇáäÇÊÌ |
|
16 |
10000 |
10000000 |
128 |
00010 |
2 |
|
ÇáÕíÛÉ |
trace(7 << 3); |
trace(7 >> 3); |
|||